package com.earthea.chatbot.login.service;

import com.earthea.chatbot.common.entity.BaseRsp;
import com.earthea.chatbot.domain.User;
import com.earthea.chatbot.login.entity.request.LoginReq;
import com.earthea.chatbot.login.entity.request.RegisterReq;
import com.earthea.chatbot.login.entity.response.LoginRsp;

/**
 * 用户服务类
 */
public interface UserService {

    /**
     * 注册
     *
     * @param registerReq 用户注册信息
     * @return 结果
     */
    BaseRsp register(RegisterReq registerReq);

    /**
     * 登录验证
     *
     * @param loginReq 用户登录信息
     * @return 结果
     */
    LoginRsp login(LoginReq loginReq);

    /**
     * 通过用户名查询用户
     *
     * @param nameOrEmail 用户名或邮箱
     * @return 用户对象信息
     */
    User selectByUser(String nameOrEmail);

    /**
     * 校验用户名称是否唯一
     *
     * @param username 用户名
     * @return 用户对象信息
     */
    User checkUserNameUnique(String username);

    /**
     * 校验用户名称是否唯一
     *
     * @param email 邮箱
     * @return 查询结果
     */
    User checkEmailUnique(String email);

    /**
     * 校验用户名称是否唯一
     *
     * @param user 用户对象
     * @return 查询结果
     */
    int update(User user);

}
